package mtt.us.client.views.fachbereich;

import mtt.us.client.events.GetModelDataEvent;
import mtt.us.client.events.SetModelDataEvent;
import mtt.us.dto.FachbereichDTO;

import hmvc4gwt.client.event.HmvcEvent;
import hmvc4gwt.client.event.HmvcEventListener;
import hmvc4gwt.client.model.Model;

public class FachbereichModel extends Model implements HmvcEventListener {
	
//	/**
//	 * enthält eine Liste mit allen Fachbereichen
//	 */
//	private List listFachbereiche;

//	private void setListFachbereiche(List listFachbereiche) {
//		this.listFachbereiche = listFachbereiche;
//		
//		SetModelDataEvent event = new SetModelDataEvent();
//		event.setPayload(this.listFachbereiche);
//		
//		getController().fireLocalEvent(event);
//	}
	
	private FachbereichDTO fachbereich;

	/**
	 * sets the represented "Fachbereich"-Object
	 * @param fachbereich
	 */
	public FachbereichModel(FachbereichDTO fachbereich) {
		setFachbereich(fachbereich);
	}
	
	public FachbereichModel() {
	}

	public void doInit() {
//		getController().register(ListFachbereicheEvent.class, this);
//		getController().register(GetListFachbereichEvent.class, this);
		
		getController().register(GetModelDataEvent.class, this);
	}
	
	public void handleEvent(HmvcEvent event) {
		
//		if (event instanceof ListFachbereicheEvent) {
//			
//			ListFachbereicheEvent listFachbereicheEvent = (ListFachbereicheEvent) event;
//			setListFachbereiche((List) listFachbereicheEvent.getPayload());
//			
//			/*
//			 * View aktualisieren
//			 */
//			SetModelDataEvent setModelDataEvent = new SetModelDataEvent();
//			setModelDataEvent.setPayload(this.listFachbereiche);
//			
//			getController().fireLocalEvent(setModelDataEvent);
//		} else if (event instanceof GetListFachbereichEvent) {
//			
//			Fachbereich fachbereich = new Fachbereich();
//			
//			ListFachbereicheEvent listFachbereicheEvent = new ListFachbereicheEvent();
//			listFachbereicheEvent.setPayload(fachbereich.getListFachbereiche());
//			
//			getController().fireLocalEvent(listFachbereicheEvent);
//		}
		
		if (event instanceof GetModelDataEvent) {
			
			getController().fireLocalEvent(new SetModelDataEvent(fachbereich));
			
		}
		
	}

	public FachbereichDTO getFachbereich() {
		return fachbereich;
	}

	private void setFachbereich(FachbereichDTO fachbereich) {
		this.fachbereich = fachbereich;
	}

}
